'''
打开文件
    变量名.open(文件名，打开方式，编码)
操作文件
    变量名.read() 读取
    变量名.write(s) 写入
关闭文件流
    变量名.close()

    文件的打开方式
        r       只读方式打开，指针在文件开头，若文件不存在报错
        rb      只读方式打开二进制文件，同上
        w       覆盖写，文件不存在会创建 存在会覆盖
        wb      覆盖写二进制文件，同上
        a       追加写模式，文件不存在创建，存在则在末尾追加
        +       与w/r/a同时使用，在原功能的基础上增加同时读写功能
    
    文件的基本操作
    file.read(size)         从文件中读取size个字符或字节，不传则读全部
    file.readline(size)     读一行，给定参数则读该行的size字符或字节
    file.readlines()        读全部，返回列表
    file.write(s)           写入s字符串
    file.writelines(lst)    写入列表
    file.seek(offset)       改变当前文件操作指针位置，英文1字节，中文gbk2字节，utf8 3字节
'''
def my_write():
    # 打开
    file = open('note.txt','w',encoding='utf-8')
    # 写入（直接写入会覆盖
    file.write("你好呀")
    # 关闭
    file.close()
if __name__ == '__main__':
    my_write()
'''
with语句：上下文管理器，在处理文件时，无论是否异常，都能保证执行完毕后关闭文件
类似try with resource 自动释放资源
'''
with open(aaa.xlx) as aa:
    pass

'''
os模块常用函数
    os.getcwd()         获取当前的工作路径
    os.listdir(path)    获取path路径下的文件和路径信息，如果没有指定path，则获取当前路径下的文件和目录信息
    os.mkdir(path)      在指定路径下创建目录
    os.makedirs(path)   创建多级目录
    os.rmdir(path)      删除目录 不存在会报错
    os.removedirs(path) 删除多级目录
    os.chdir(path)      path设置为当前目录
    os.walk(path)       遍历目录树，返回元组，包含所有路径名，所有目录列表和文件列表
    os.remove(path)     删除path指定的文件
    os.rename(old.new)  重命名
    os.stat(path)       获取path指定的文件信息
    os.startfile(path)  启动path指定的文件

os.path函数 是os的子模块
    abspath(path)       获取目录或文件的绝对路径
    exists(path)        判断目录或文件在磁盘上是否存在，返回Bool
    join(path,name)     目录与目录名或文件名拼接，相当于字符串的+
    splittext()         分别获取文件名和后缀名
basename(path)      从path中获取文件名
dirname(path)       从path中提取路径（不包含文件名）
isdir(path)         判断path是否是有效路径
isfile(path)        判断file是否是有效文件
'''